A data packet (also known as a “packet”) is a block of user data with address and administration information attached, usually in a packet header and/or footer, which allows a network to deliver the data packet to the correct destination. Examples of data packets include, but are not limited to, Internet Protocol (“IP”) packets, asynchronous transfer mode (“ATM”) cells, Ethernet frames, synchronous optical network (“SONET”) frames, and Frame Relay packets. Typically, related data packets having similar characteristics (e.g., related to the same application) and common source and destination addresses are referred to as a packet flow.
FIG. 1 represents the Open Systems Interconnect (“OSI”) model of a layered network protocol stack 100 for transmitting data packets. Each layer installs its own header in the data packet being transmitted to control the packet through the network. A physical layer (layer 1) 105 is used for the physical signaling. A next layer, data link layer (layer 2) 110, enables transferring of data between network entities. A network layer (layer 3) 115 contains information for transferring variable length data packet between one or more networks. For example, IP addresses are contained in network layer 115, which allows network devices (also commonly referred to a network elements) to route the data packet. Layer 4, transport layer 120, provides transparent data transfer between end users. A session layer (layer 5) 125, provides the mechanism for managing the dialogue between end-user applications. A presentation layer (layer 6) 130 provides independence from difference in data representation (e.g. encryption, data encoding, etc.). The final layer is an application layer (layer 7) 135, which contains the actual data used by the application sending or receiving the packet. While protocol stacks often do not exactly follow the OSI model, it is commonly used to describe networks.
FIG. 2 illustrates a typical client-server model where a plurality of client subscribers 205 receive and consume content transmitted by a content provider 210 (the server) transported via a network 215 (e.g., the Internet, a wide area network, a metro network, a local area network, or the like). Network 215 may include one or more routers 220 to switch packets carrying the content through network 215 in packet flows.
The predominant form of transmission on local area networks (“LANs”), wide area networks (“WANs”), and within the Internet is unicast transmission. Unicast is the term used to describe communication where a piece of information is sent from one point to another. In other words, there is just one sender and just one receiver. A unicast packet is a packet that has been transmitted from a single source and is addressed to a single destination. Unicast packets using the IPv4 or IPv6 standard, have specified header/footer fields set, which identify the packets as unicast packets. A flow of related unicast packets is referred to as a unicast flow. The term unicast exists in contradiction to multicast, which is communication between a single sender and multiple receivers, and anycast, which is communication between any sender and the nearest of a group of receivers in a network. Unicast packets are distinct from multicast and anycast packets not only in the techniques used to route them through a network, but also in the values and fields set in their packet headers/footers.
Accordingly, FIG. 2 illustrates content provider 210 transmitting independent and distinct unicast content flows to each client subscriber 205. A unicast content flow is simply a unicast flow of data packets which provides content (e.g., media content, video on demand (“VoD”), IP television (“IPTV”), streaming audio, etc.) for consumption by client subscribers 205. Client subscribers 205 may communicate back to the content provider 210 (e.g., to select the particular content desired) with control packets transmitted in unicast control flows.
Since conventional routers are limited to layer-3 processing, which include the IP address processing to make routing decisions, router 220 is labeled as an L3 router. FIG. 3 illustrates the layered network protocol stacks associated with each network element in FIG. 2. Client subscribers 205 execute protocol stacks 305 on the client side, content provider 210 executes a protocol stack 310 on the server side, and L3 router 220 executes a protocol stack 320.
Protocol stacks 305 and 310 terminate the unicast flows, since they are the ultimate source or destination of the unicast flows. In other words, the server application executing on content provider 210 and the client applications executing on client subscribers 205 parse data communicated in the unicast flows all the way to the application layer to extract the specific application data. In the case of unicast control flows 325, this is illustrated with termination dots 330. In contrast, unicast control flow 325 is merely parsed up to the network layer in L3 router 220. L3 router 220 only unwraps or analyzes the packets of unicast control flows 325 to the network layer to effect routing decision, but is unaware of higher layer data and therefore unable to interpret application data wrapped in the application layer. L3 router 220 does not access the application data and therefore does not terminate unicast control flows 325. Similarly, unicast content flows 335 pass through L3 router 220 without termination and without the application data being parsed or analyzed.